package models

import (
	"order-srv/basic/inits"
	"time"
)

type DistributionSearch struct {
	Id          uint32    `gorm:"column:id;type:int UNSIGNED;comment:主键;primaryKey;not null;" json:"id"`                              // 主键
	UserId      uint64    `gorm:"column:user_id;type:bigint UNSIGNED;comment:用户Id;not null;" json:"user_id"`                          // 用户Id
	Nickname    string    `gorm:"column:nickname;type:varchar(255);comment:昵称;not null;" json:"nickname"`                             // 昵称
	FId         uint64    `gorm:"column:f_id;type:bigint UNSIGNED;comment:副级用户Id;not null;" json:"f_id"`                              // 副级用户Id
	Mobile      string    `gorm:"column:mobile;type:varchar(11);comment:手机号;not null;" json:"mobile"`                                 // 手机号
	Price       uint64    `gorm:"column:price;type:bigint UNSIGNED;comment:价格;not null;" json:"price"`                                // 价格
	FreezePrice uint64    `gorm:"column:freeze_price;type:bigint UNSIGNED;comment:冻结金额;not null;" json:"freeze_price"`                // 冻结金额
	PullProple  int64     `gorm:"column:pull_prople;type:bigint;comment:拉取人数;not null;" json:"pull_prople"`                           // 拉取人数
	SumPrice    uint64    `gorm:"column:sum_price;type:bigint UNSIGNED;comment:总价格;not null;" json:"sum_price"`                       // 总价格
	CreatedAt   time.Time `gorm:"column:created_at;type:datetime;comment:创建时间;not null;default:CURRENT_TIMESTAMP;" json:"created_at"` // 创建时间
	UpdatedAt   time.Time `gorm:"column:updated_at;type:datetime;comment:修改时间;not null;default:CURRENT_TIMESTAMP;" json:"updated_at"` // 修改时间
	DeletedAt   time.Time `gorm:"column:deleted_at;type:datetime;comment:删除时间;default:NULL;" json:"deleted_at"`                       // 删除时间
}

// TableName 返回表名称
func (d *DistributionSearch) TableName() string {
	return "distribution_search"
}

// 二级分销查询当前用户上级
func (d *DistributionSearch) GetDistributionUpOneUser() error {
	return inits.DB.Where("user_id = ?", d.UserId).Find(&d).Error
}
